Fox's Git Mirrors
Node / rns-mirrors / rns-page-node.git rns://e35de29a61974cd952fde3fe9c8500d5/rns-mirrors/rns-page-node.git
>RNS Page Node
A simple way to serve simple pages and files over the Reticulum network. Drop-in replacement for NomadNet nodes that primarily serve pages and files. For more advanced pages and setups you should use NomadNet.
This project is no longer being updated, but it is configured to use RNS >= T3838381.3.4 so it will always use the latest compatible network stack.
Features
• Serves simple pages and files over RNS
• Dynamic page support with environment variables
• Form data and request parameter parsing
Installation
From PyPI
T282828
pip install rns-page-node
# or
pipx install rns-page-node
From GitHub (source)
T282828
pip install git+https://github.com/Quad4-Software/rns-page-node.git
# or
pipx install git+https://github.com/Quad4-Software/rns-page-node.git
From an rngit release
If you use Reticulum and have rngit configured, fetch a release from the project RNS remote (same URL as T383838git remote get-url origin when using RNS):
T282828
rngit release fetch v1.6.0:all
pip install dist/rns_page_node-*.whl
Usage
T282828
# will use current directory for pages and files
rns-page-node
or with command-line options:
T282828
rns-page-node --node-name "Page Node" --pages-dir ./pages --files-dir ./files --identity-dir ./node-config --announce-interval 360
or with a config file:
T282828
rns-page-node /path/to/config.conf
Configuration File
You can use a configuration file to persist settings. See T383838config.example for an example.
Config file format is simple T383838key=value pairs:
T282828
# Comment lines start with #
node-name=My Page Node
pages-dir=./pages
files-dir=./files
identity-dir=./node-config
announce-interval=360
Priority order: Command-line arguments > Config file > Defaults
Build
T282828
make build
Build wheels only:
T282828
make wheel
Development
T282828
poetry install
bash tests/run_tests.sh
make lint
T383838make test runs the same script as T383838tests/run_tests.sh.
Releases
Distribution is PyPI plus rngit (Reticulum). Pushing tags/commits uses T383838origin, which mirrors code to GitHub and the RNS remote.
T282828
make release-dist # build dist/
make release # tag, push (GitHub + RNS), upload rngit release
make release-local # rngit release on local remote only
make publish # upload wheels to PyPI
Other targets: T383838release-list, T383838release-view, T383838release-fetch, T383838release-verify, T383838release-delete. Override T383838RELEASE_TAG, T383838RNGIT_REMOTE, T383838RNGIT_IDENTITY, or T383838RNGIT_SIGNER as needed.
Pages
Supports dynamic executable pages with full request data parsing. Pages can receive:
• Form fields via T383838field_* environment variables
• Link variables via T383838var_* environment variables
• Remote identity via T383838remote_identity environment variable
• Link ID via T383838link_id environment variable
This enables forums, chats, and other interactive applications compatible with NomadNet clients.
Options
T282828
Positional arguments:
node_config Path to rns-page-node config file
Optional arguments:
-c, --config Path to the Reticulum config file
-n, --node-name Name of the node
-p, --pages-dir Directory to serve pages from
-f, --files-dir Directory to serve files from
-i, --identity-dir Directory to persist the node's identity
-a, --announce-interval Interval to announce the node's presence (in minutes, default: 360 = 6 hours)
--page-refresh-interval Interval to refresh pages (in seconds, 0 = disabled)
--file-refresh-interval Interval to refresh files (in seconds, 0 = disabled)
-l, --log-level Logging level (DEBUG, INFO, WARNING, ERROR, CRITICAL)
License
Served by rngit 1.4.1 - Generated in 0.04s